// zdl:: 经典的使用欧拉筛来解决的问题


#include<algorithm>
#include<iostream>

using namespace std;
using ll = long long;
ll sum, n;

const int N = 4e4 + 10;
bool st[N];
int p[N], cnt;
int phi[N];

void get_phi()
{

    // zdl:: 现在的逻辑就是实现欧拉函数的逻辑
    // 因为在求解的时候没有考虑到 i== 0 所以我们就需要提前处理
    phi[1] = 1; // 这个就是应为题目的性质而决定的
    for (int i = 2; i <= n; i++)
    {
        if (!st[i]) 
        {
            phi[i] = i - 1;
            p[++cnt] = i;
        }
        for (ll j = 1; i * p[j] <= n; j++)
        {
            ll x = i * p[j];
            st[x] = true;
            if (i % p[j] == 0)
            {
                // 此时还是线性筛的逻辑在执行完操作后还是需要跳出循环
                phi[x] = phi[i] * p[j];
                break;
            }
            else{

                phi[x] = phi[i] * phi[p[j]];
            }

        }
    }
}
int main()
{
    // 欧拉筛就是在线性筛的基础上实现的
    cin >> n;
    get_phi();

    ll sum = 0;
    for (int i = 1; i < n; i++)
    {
        sum += phi[i];
    }

    if (n == 1) cout << 0 << endl;
    else cout << 2 * sum + 1 << endl;

    return 0;
}


// 现在很少能在一个人的身上看到性冷淡，布洛芬就是这样的，现在还是需要
// 现在gpu的性能还没有达到最顶端，现在我们还是需要继续探索我们需要的东西
